using System;
using System.Collections.Generic;

namespace OffsetPath
{
    public class ClassF
    {
        private ClassN a;
        private LinkedList<SkeletroBaseLineaClasseI> b;
        private bool c;
        private ClassZ d;
        private int? e = null;

        public ClassF(ClassN A_0, LinkedList<SkeletroBaseLineaClasseI> A_1, bool A_2)
        {
            this.a = A_0;
            this.b = A_1;
            this.c = A_2;
            foreach (SkeletroBaseLineaClasseI i in A_1)
            {
                i.MethodA(this);
            }
        }

        public bool MethodA()
        {
            return this.c;
        }

        public void MethodA(ClassZ A_0)
        {
            this.d = A_0;
        }

        public ClassZ MethodB()
        {
            return this.d;
        }

        public LinkedList<SkeletroBaseLineaClasseI> MethodC()
        {
            return this.b;
        }

        public ClassN MethodD()
        {
            return this.a;
        }

        public override int GetHashCode()
        {
            if (!this.e.HasValue)
            {
                this.e = new int?(Guid.NewGuid().GetHashCode());
            }
            return this.e.Value;
        }
    }
}

